<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

require_once 'abstract_model.php';

class model_usuario extends abstract_model{
    
    public $USU_ID = null;
    public $USU_PERFIL = "";
    public $USU_NOME = "";
    public $USU_SENHA = "";
    public $USU_STATUS = "";
    public $USU_DATA_PRIMEIRO_ACESSO = "";
    public $USU_DATA_ULTIMO_ACESSO = "";
    public $USU_DATA_BLOQUEIO = "";
    public $USU_DATA_ATIVACAO = "";
    public $USU_DATA_CANCELAMENTO = "";
    

    public function setUSU_ID($valor){
        if(!is_numeric($valor))
            throw new ValidationException("Valor invalido para USU_ID");
        
        $this->USU_ID = $valor;
    }
    
    public function setUSU_PERFIL($valor){
        $expressao = "/^(cliente|administrador)$/";
        if (!preg_match($expressao, $valor))
            throw new ValidationException("Valor invalido para USU_PERFIL");
        
        $this->USU_PERFIL = $valor;
    }
    
    public function setUSU_NOME($valor){
        $expressao = "/^\w{6,30}$/";
        if (!preg_match($expressao, $valor))
            throw new ValidationException("O campo USU_NOME deve ter entre 6 e 30 caracteres");
        
        $this->USU_NOME = $valor;
    }
    
    public function setUSU_SENHA($valor){
        $expressao = "/^.{6,30}$/";
        if (!preg_match($expressao, $valor))
            throw new ValidationException("O campo USU_SENHA deve ter entre 6 e 30 caracteres");
        
        $this->USU_SENHA = $valor;
    }
    
    public function setUSU_STATUS($valor){
        $expressao = "/^[A|I|C|B|P]$/";
        if (!preg_match($expressao, $valor))
            throw new ValidationException("O campo USU_STATUS possui valor invalido");
        $this->USU_STATUS = $valor;
    }
    
    public function getUSU_ID(){
        return $this->USU_ID;
    }
    
    public function getUSU_PERFIL(){
        return $this->USU_PERFIL;
    }
    
    public function getUSU_NOME(){
        return $this->USU_NOME;
    }
    
    public function getUSU_STATUS(){
        return $this->USU_STATUS;
    }
    
    public function getUSU_DATA_PRIMEIRO_ACESSO(){
        return $this->formataData($this->USU_DATA_PRIMEIRO_ACESSO);
    }
    
    public function getUSU_DATA_ULTIMO_ACESSO(){
        return $this->formataData($this->USU_DATA_ULTIMO_ACESSO);
    }
    
    
    public function getUSU_DATA_BLOQUEAIO(){
        return $this->formataData($this->USU_DATA_BLOQUEIO);
    }
    
    public function getUSU_DATA_ATIVACAO(){
        return $this->formataData($this->USU_DATA_ATIVACAO);
    }
    
    public function getUSU_DATA_CANCELAMENTO(){
        return $this->formataData($this->USU_DATA_CANCELAMENTO); 
    }
    
    private function formataData($valor){
        $data = explode('/', $valor);
        $a = $data[0];
        $m = $data[1];
        $d = $data[2];
        return "$d/$m/$a";
    }
    
}
?>
